simple addition of constraints problem - Mailing list pgsql-sql

From Michelle Murrain
Subject simple addition of constraints problem
Date
Msg-id p0602040bbcebe1496b26@[66.152.196.53]
Whole thread Raw
Responses Re: simple addition of constraints problem  (Stephan Szabo <sszabo@megazone.bigpanda.com>)
List pgsql-sql
Hi All,

I'm trying to do something which seems really simple to me. (Postgres 7.3.4)

I've got this table:

charter_dev2=# \d rcourseinfo                               Table "public.rcourseinfo"   Column    |         Type
  |                     Modifiers
 
-------------+-----------------------+--------------------------------------------------- courseid    | integer
     | not null default 
 
nextval('rcourseinfo_seq'::text) coursename  | character varying(50) | dept        | character varying(30) | number
| character varying(4)  | section     | character varying(2)  | trimester   | character varying(5)  | schoolyear  |
charactervarying(8)  | facultyid   | integer               | description | text                  | credits     | real
              |
 
Indexes: rcourseinfo_pkey primary key btree (courseid),         rcourseinfo_number_index btree (number)

With a primary key called 'courseid'.

I've got a second table:

charter_dev2=# \d coursesevaluations                             Table "public.coursesevaluations"        Column
|  Type   |                        Modifiers
 
-----------------------+---------+---------------------------------------------------------- courseid              |
integer| evalid                | integer | coursesevaluations_id | integer | not null default 
 
nextval('coursesevaluations_seq'::text)
Indexes: coursesevaluations_pkey primary key btree (coursesevaluations_id),         coursesevaluations_evalid_index
btree(evalid)
 


I'd like to make 'courseid' in this second table a foreign key, 
referencing 'courseid' in the first table. So I did this command:

charter_dev2=# ALTER TABLE coursesevaluations ADD CONSTRAINT rc_ce 
FOREIGN KEY (courseid) REFERENCES rcourseinfo (courseid);

And I get this result:

NOTICE:  ALTER TABLE will create implicit trigger(s) for FOREIGN KEY check(s)
ERROR:  rc_ce referential integrity violation - key referenced from 
coursesevaluations not found in rcourseinfo

This doesn't make any sense to me - the fields are named the same, 
and are the same data type. I've pored over the docs, to no avail. 
I'm sure I'm missing something really elementary, but it's escaping 
me.

I did try the following (because the error said "key referenced"):
ALTER TABLE coursesevaluations ADD CONSTRAINT rc_ce FOREIGN KEY 
(courseid) REFERENCES rcourseinfo (rcourseinfo_pkey);

I got the error :
ERROR:  ALTER TABLE: column "rcourseinfo_pkey" referenced in foreign 
key constraint does not exist

!!

Thanks for any advice.
-- 
.Michelle

--------------------------
Michelle Murrain
mmurrain at dbdes dot com
413-222-6350 ph
617-889-0929 ph
952-674-7253 fax <--- new
Page: pageme@murrain.net
AIM:pearlbear0 ICQ:129250575
Y!: michelle_murrain Jabber: pearlbear@transactim.net

"Work like you don't need the money. Love like you've never been 
hurt. Dance like nobody's watching." - Satchel Paige


pgsql-sql by date:

Previous
From: Rajesh Kumar Mallah
Date:
Subject: Re: Query becoming slower on adding a primary key
Next
From: "Jaime Casanova"
Date:
Subject: a query question